To transmit audio and video data over a computer network, the data is typically processed prior to transmission to maximize quality and minimize consumption of system resources. Issues of quality and resource consumption are of greater concern when audio and video are transmitted together in a network communication system (e.g., video conferencing, video telephony). Such “real-time” communication systems must maintain a constant stream of data between participants. As such, the demand for a device's resources may limit the audio and/or video quality provided by the system. Communication devices must, therefore, balance overall audio and video quality against several factors including: system performance, consumption of resources, and user preferences.
Two factors determining the overall quality of audio/video communications include latency and quality. In a communication system, latency is the delay measured from the time data is recorded at a source device, to the time the data is presented at a destination device. Within overall latency, network latency is the time required for data to traverse the network from the source to the destination. In addition, system latency arises from the time required for the source device to record, process, and transmit the audio/video data and, likewise, the time required for the destination device to receive, process and present the data.
Latency is particularly problematic in real-time communications systems because video and audio must be presented with as little delay as possible to enable natural interaction between participants. Excessive latency causes, among other things, cross-talk and echo that may severely impair the participants' ability to communicate effectively.
Latency is an even greater concern in packet-switched networks, such as the Internet. In a packet-switched network, data sent from a source device is divided into a plurality of packets that travel individually through the network to a destination device. Each packet, however, may arrive at the destination in a different sequence than the packets were originally sent. This difference may arise from a variety of factors, including: capacity of various routes, network congestion, re-routing, bottlenecks, and protocol incompatibilities. Additional latency is therefore introduced due to the time required for the destination terminal to re-sequence the data packets and reform the original data message. Even more problematic is that this latency may vary widely depending on the resources available in the devices and conditions present in the system at any particular time.
With regard to quality, audio and video data quality in a network communication system depends on several factors. Video quality is related to, for example, the video's resolution, frame rate, color quality, frame size (i.e., the number of pixels in a frame), and method of data compression. When the quality of audio and/or video is increased, the additional processing required consumes greater resources and, in turn, increases the overall latency in the communication system. For instance, if the level of audio/video quality exceeds a device's capacity to process the data, the encoded quality of audio and video may suffer due to loss of unprocessed data.
Quality is further affected by fluctuations in the audio/video presentation, commonly referred to as “jitter.” In a packet-switched network, jitter may result from data packets being delayed in transmission over the network, such that a complete audio/video message cannot be assembled before presentation to the user. As a result, segments of the audio and video may not be presented and, instead, cause audio and/or video to jitter, thereby detracting from the participants' natural communication.
To compensate for jitter, a reserve pool of data may be stored in a data buffer to provide a steady supply of data, while other data is processed. If the buffer is too small to compensate for delay in the system (e.g., due to slow processing), the reserve of packets stored in the buffer may become depleted and result in jitter as, for example, the data buffer intermittently fills and depletes. On the other hand, if buffer size is increased to provide sufficient reserve to avoid jitter, the increased buffering introduces additional latency, thereby detracting from overall quality of communication.
Thus, as discussed above, the quality of an audio and video signal can be increased in a network communication system. But an increase in quality may be offset by an undesirable increase in latency. Accordingly, a network communication system must balance latency with audio and video quality to provide highest overall quality for a given set of conditions.